Convolutional neural networks may be used to process images. For example, convolutional neural networks may be used for image recognition and/or image classification. Convolutional neural networks may include filters that are self-optimized through learning. Convolutional neural networks may automatically learn filters which may be used for image processing by successively convolving an input image with learned filters to produce a hierarchy of feature maps. Sizes of convolutional neural networks may make it impracticable to run convolutional neural networks on low resource/processing devices, such as mobile devices.